package MyArray;

/**
 * 228. 汇总区间
 *
 * 给定一个无重复元素的有序整数数组 nums 。
 *
 * 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说，nums 的每个元素都恰好被某个区间范围所覆盖，并且不存在属于某个范围但不属于 nums 的数字 x 。
 *
 * 列表中的每个区间范围 [a,b] 应该按如下格式输出：
 *
 *     "a->b" ，如果 a != b
 *     "a" ，如果 a == b
 */

import java.util.ArrayList;
import java.util.List;

public class summary_ranges {
    public static String concat(int left, int right) {
        if (right == left) {
            return Integer.toString(left);
        } else {
            return  Integer.toString(left) + "->" + Integer.toString(right);
        }
    }

    public static List<String> summaryRanges(int[] nums) {
        List<String> summary = new ArrayList<>();

        if (nums.length == 0) {
            return summary;
        } else {
            int left = nums[0], right = nums[0];
            for (int i = 1; i < nums.length; i++) {
                if (nums[i] != (nums[i - 1] + 1)){
                    summary.add(concat(left, right));
                    left = nums[i];
                    right = nums[i];
                }else{
                    right = nums[i];
                }
            }
            summary.add(concat(left, right));
        }

        return summary;
    }

    public static void main(String[] args) {
        int[] nums = new int[]{0,2,3,4,6,8,9};
        System.out.println(summaryRanges(nums));
        System.out.println(concat(1, 5));
    }
}
